准备测试数据
1 | [hadoop@hadoop000 logs]$ ls -lh |
测试
- rdd.persist(StorageLevel.MEMORY_ONLY)
缓存占存储空间为 590.9MB ,接近原始数据大小的4倍(具体倍数不好说,但是起码2倍以上)
- rdd.persist(StorageLevel.MEMORY_ONLY_SER)
缓存占存储空间为 111.1MB,远远小于 MEMORY_ONLY ,且比原始数据小
rdd.persist(StorageLevel.MEMORY_ONLY_SER)
1
2
3val sparkConf = new SparkConf()
sparkConf.set("spark.serializer","org.apache.spark.serializer.KryoSerializer")
// 注意 此处只是设置了 没有 register缓存占存储空间为 108.3MB,此种情况跟单单使用 ``rdd.persist(StorageLevel.MEMORY_ONLY_SER` ,效果差不多
rdd.persist(StorageLevel.MEMORY_ONLY_SER)
1
2
3
4val sparkConf = new SparkConf()
sparkConf.set("spark.serializer","org.apache.spark.serializer.KryoSerializer")
// AccessLog implements Serializable
sparkConf.registerKryoClasses(Array(classOf[AccessLog]))
缓存占存储空间为 76.6MB,此种情况节省的存储空间就很可观了
- 本文作者: cll
- 本文链接: https://keeponcoding.github.io/2018/01/31/Spark kyro/
- 版权声明: 本博客所有文章除特别声明外,均采用 Apache License 2.0 许可协议。转载请注明出处!